// 定义记分牌的类
export default class ScorePanel {
    // 分数
    score: number = 0
    // 等级
    level: number = 1
    // 分数的dom节点
    scoreEle: HTMLElement
    // 等级的dom节点
    levelEle: HTMLElement
    // 等级上限
    maxLevel: number
    // 升级需要的分数
    upgradeScore: number

    constructor(maxLevel = 10, upgradeScore = 10) {
        // 获取分数的dom节点
        this.scoreEle = document.querySelector('.score')!
        // 获取等级的dom节点
        this.levelEle = document.querySelector('.level')!
        // 设置等级上限
        this.maxLevel = maxLevel
        // 设置每次升级需要的分数
        this.upgradeScore = upgradeScore
    }

    // 添加分数的方法
    addScore() {
        // 更新分数
        this.score += 10
        // 更新分数的dom节点
        this.scoreEle.innerHTML = String(this.score)
        // 如果分数达到升级要求
        if (this.score % this.upgradeScore === 0) {
            // 调用提升等级的方法
            this.updateLevel()
        }
    }

    // 更新等级的方法
    updateLevel() {
        // 如果玩家当前没有达到等级上限
        if (this.level < this.maxLevel) {
            // 更新等级
            this.level++
            // 更新等级的dom节点
            this.levelEle.innerHTML = String(this.level)
        }
    }
}